sudo apt-get install git 
git config --global user.name "用户名"
git config --global user.email "邮箱账号"
git config --global user.password "密码"
ssh-keygen -t rsa -C “邮箱账号”   
//连续回车

cat ~/.ssh/id_rsa.pub
查看公钥将生成的ssh公钥复制粘贴到码云账户个人信息修改里面

mkdir -p gittest
cd gittest
git init
touch readme.txt
git add readme.txt
git commit -m “first do sth”
//与远程仓建立链接，在码云上创建仓，打开git@gitee.com:jankin_by/digging_machine.git
git remote add origin git@gitee.com:jankin_by/digging_machine.git
将代码推送到远程端
git push -u origin master
git push -f origin master //强制推送
将远程下载到本地
git pull origin master

git remote rm origin
删除远端链接
git remote -v
查看远端版本
git remote add origin https://gitee.com/jankin_by/digging_machine2.git
添加远端

删除文件 
git rm -r testfile.txt
git commit -m "删除testfile.txt"


下载
git pull origin master
git branch #查看分支
git checkout -b <branchname> #创建分支并切换到分支目录 -build
git add <file-name> #以分支的身份提交文件到暂存区
git push --set-upstream origin dev #创建远端与本地的链接，远端创建分支
git push origin --delete 分支名
git push origin <branch name> #提交分支

git checkout -d <branchname> #删除分支 -delete
git branch -d <branchname> #删除分支 -delete

git checkout master #切换回到主分支
git merge <branchname> #合并分支到主分支
git log          #查看你最近提交的版本，比如当前版本1111，上个版本2222
git reset 2222          #回退到2222版本
git status               #查看当前1111版本的更改
git checkout filename    #将该文件更改的部分进行复原

git clone -b test http://asdf.git #拉取分支代码

merge文件
在某個分支基礎上創建分支,例：在net-dev上創建net_by分支
git checkout -b net_by net-dev
touch a.txt
git add .
git commit -m "add a.txt"
git checkout net-dev
git merge net_by
git branch -D net_by
git push origin net-dev

git pull origin master --allow-unrelated-histories

git add -f "文件名" 当添加ignore后
git rm -r --cached “文件名” 后添加gitignore




.gitignore
添加文件：git add -f "文件名"


merge两个分支
git checkout -b "123"
git checkout -b "234"
git merge 123 234 #将123 和并到234



git submodule add <url> name
子模块远程有更新
通常来讲，主项目与子模块的开发不会恰好是同时进行的。通常是子模块负责维护自己的版本升级后，推送到远程仓库，并告知主项目可以更新对子模块的版本依赖。
在这种情况下，主项目是比较茫然的。
之前曾经提到，主项目可以使用 git submodule update 更新子模块的代码，但那是指 当前主项目文件夹下的子模块目录内容 与 当前主项目记录的子模块版本 不一致时，会参考后者进行更新。但如今这种情况下，后者 当前主项目记录的子模块版本 还没有变化，在主项目看来当前情况一切正常。此时，需要让主项目主动进入子模块拉取新版代码，进行升级操作。

通常流程是：
cd project-sub-1
git pull origin master
子模块目录下的代码版本会发生变化，转到情况2的流程进行主项目的提交。
当主项目的子项目特别多时，可能会不太方便，此时可以使用 git submodule 的一个命令 foreach 执行：
git submodule foreach 'git pull origin master'
删除分支
git submodule deinit project-sub-1
git rm project-sub-1

删除缓存
git rm -r --cached 文件名
git add .gitignore
git add .
git push

git checkout --orphan new_branch #新建分支
git config --global credential.helper store #push避免输入密码

